#ifndef i_serialization_h__
#define i_serialization_h__

#pragma once
namespace	rabc{

class rbac_role;
class rbac_privilege;
class rbac_resource;

class i_serialization
{
public:

	typedef struct  serialization_data_
	{
		unsigned char*	out_buff;
		unsigned long	length;
	}seri_data,*seri_data_ptr;

	i_serialization(void)
	{
	}

	virtual ~i_serialization(void)
	{
	}

	virtual void	seriz_role(const rbac_role& role,seri_data_ptr out) const =0;
	virtual void	seriz_priv(const rbac_privilege& priv,seri_data_ptr out) const =0;
	virtual void	seriz_res(const rbac_resource& res,seri_data_ptr out) const =0;
};
};//namespace rabc
#endif // i_serialization_h__